package com.zxy.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import java.util.List;

/**
 * 部门实体类
 */
@Data
@TableName("sys_dept")
public class SysDept {
    /**
     * 节点ID（主键，与前端id对齐）
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;


    /** 父部门ID */
    private Long parentId;

    /** 部门祖先路径 */
    private String ancestors;

    /**
     * 节点名称（与前端label对齐）
     */
    @TableField("label")
    private String label;


    /** 排序号（对应前端orderNum） */
    private Integer sort;

    /** 部门负责人 */
    private String leader;

    /** 部门电话 */
    private String phone;

    /** 部门邮箱 */
    private String email;

    /** 状态（0=正常，1=禁用） */
    private String status;

    /** 删除标志（0=未删除，1=已删除） */
    @TableLogic // 逻辑删除标记
    private String delFlag;

    /** 创建人 */
    private String createBy;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT) // 插入时自动填充
    private Date createTime;

    /** 更新人 */
    private String updateBy;

    /** 更新时间 */
    @TableField(fill = FieldFill.UPDATE) // 更新时自动填充
    private Date updateTime;

    // 前端所需额外字段
    /** 父部门名称（前端parentName） */
    @TableField(exist = false) // 表中无c该字段，仅用于返回
    private String parentName;

    /** 部门下用户列表（前端users，暂为空） */
    @TableField(exist = false)
    private List<SysUser> users;

    /** 子部门列表（前端children，暂为空） */
    @TableField(exist = false)
    private List<SysDept> children;

    @TableField(exist = false)
    private String deptName;
}